﻿<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>UUP to ISO</title>
    <style type="text/css">
        #nav {
            position: absolute;
            top: 0;
            left: 0;
            bottom: 0;
            width: 200px;
            overflow: auto;
        }

        main {
            position: fixed;
            top: 0;
            left: 200px;
            right: 0;
            bottom: 0;
            overflow: auto;
        }

        .innertube {
            margin: 15px;
        }

        * html main {
            height: 100%;
            width: 100%;
        }
    </style>
</head>

<body>
    <main>
        <div class="innertube">

            <h2><a name="Overview"></a>Overview</h2>
            <ul style="margin-top:0in;margin-bottom:0in">
                <li>Automated windows command script to process Microsoft Windows 10 Unified Update Platform files, allowing to build/convert them into a usable state (ISO / WIM).</li>
                <br />
                <li>You can get UUP files by performing upgrade from Windows 10 build to later build (starting 15063, aka version 1703).</li>
                <br />
                <li>You can also obtain UUP canonical source using one of these projects:<br />
                <a href="https://uupdump.net/">UUP dump website</a><br />
                <a href="https://uup.rg-adguard.net/">UUP Generation Project</a></li>
            </ul>
            <hr />
            <br />

            <h2><a name="Using"></a>How To Use</h2>
            <ul style="margin-top:0in;margin-bottom:0in">
                <li>Administrator privileges are required to run the script.</li>
                <br />
                <li>Optional: temporary disable AV or protection program so it doesn't interfere with the process.</li>
                <br />
                <li>Make sure the files are not read-only or blocked.</li>
                <br />
                <li>Extract this pack to a folder with simple spaceless path to avoid troubles (example: C:\UUP).</li>
                <br />
                <li>Place the files in "UUPs" folder to be detected automatically, or drag and drop uup files directory on convert-UUP.cmd. Alternatively, you will be prompted to enter other UUP folder path.</li>
                <br />
                <li>If multiple Editions detected, you will be prompted first to select one edition, some editions, or create AIO.</li>
                <br />
                <li>To exit of the prompt or options menu just press "Enter".</li>
                </li>
            </ul>
            <hr />
            <br />

            <h2><a name="Options"></a>Output Choice</h2>
            <ul style="margin-top:0in;margin-bottom:0in">
                <li>
                    <b>1 - Create ISO with install.wim</b><br />
                    <b>4 - Create ISO with install.esd</b><br /><br />
                    convert UUP files to a regular ISO distribution that contains install.wim or install.esd file.
                </li>
                <br />
                <li>
                    <b>2 - Create install.wim</b><br />
                    <b>5 - Create install.esd</b><br /><br />
                    create install.wim/install.esd file only, which can be used with other ISO with the same version or for manual apply using dism, imagex, wimlib.
                </li>
                <br />
                <li>
                    <b>3 - UUP Edition info</b><br /><br />
                    Display info about detected editions (architecture, language, build version, build branch, editions name).
                </li>
                <br />
                <li>
                    <b>6 - Configuration Options</b><br /><br />
                    Change the state of configuration options.
                </li>
            </ul>
            <hr />
            <br />

            <h2><a name="Manual"></a>Configuration Options</h2>
                Control conversion behavior, output and automation.<br /><br />
                You have three ways to change the state of these options, where 0 means the option is OFF (no), and 1 means the option is ON (yes):<br />
                - edit <b>ConvertConfig.ini</b> under [convert-UUP] section<br />
                - delete <b>ConvertConfig.ini</b> and edit <b>convert-UUP.cmd</b> script directly<br />
                - use menu choice 6 (AutoStart option is excluded from this)<br /><br />
            <ul style="margin-top:0in;margin-bottom:0in">
                <li>
                    <b>AutoStart</b><br /><br />
                    Start the conversion process directly without prompts.<br /><br />
                    This require placing UUP files in *UUPs* folder, or starting convert-UUP.cmd from command prompt with path to UUP source folder, or drag and drop UUP source folder on convert-UUP.cmd.<br /><br />
                    Set this option to <strong>1</strong> to create ISO with <b>install.wim</b><br />
                    Set this option to <strong>2</strong> to create ISO with <b>install.esd</b>
                </li>
                <br />
                <li>
                    <b>AddUpdates</b><br /><br />
                    Update the ISO distribution or install.wim with detected updates after conversion.<br /><br />
                    Set this option to <strong>1</strong> to <b>integrate updates </b>into wim files<br />
                    Set this option to <strong>2</strong> to <b>add updates externally</b> to ISO distribution<br /><br />
                    See <a href="#Update">Add Updates Option</a> for more details.
                </li>
                <br />
                <li>
                    <b>StartVirtual</b><br /><br />
                    Start create_virtual_editions.cmd directly after conversion is completed.<br /><br />
                    See <a href="#Virtual">Virtual Editions</a> for more details.
                </li>
                <br />
                <li>
                    <b>wim2esd</b><br /><br />
                    Convert install.wim to install.esd at the end.<br /><br />
                    This option is intended to be used with option <b>AddUpdates</b>.<br /><br />
                    This option will be auto enabled if you selected <b>install.esd</b> choice and <b>AddUpdates</b> is ON.<br /><br />
                    Warning: creating install.esd will consume high amount of CPU/RAM, and might take considerable time to complete.
                </li>
                <br />
                <li>
                    <b>SkipISO</b><br /><br />
                    If you are not interested to create ISO file currently, or want to create Multi-Architecture ISO (x86/x64) later with multi_arch_iso.cmd, or intend to manually use create_virtual_editions.cmd
                </li>
                <br />
                <li>
                    <b>SkipWinRE</b><br /><br />
                    Do not add winre.wim to install.wim/install.esd, if you are not interested to have recovery environment or want to reduce ISO size/conversion period.. etc.<br /><br />
                    note: adding winre.wim to install<b>.esd</b> will consume high amount of CPU/RAM.
                </li>
                <br />
                <li>
                    <b>ForceDism</b><br /><br />
                    Use the official method with dism.exe for creating boot.wim, which require Windows 10 Host OS or ADK.
                </li>
                <br />
                <li>
                    <b>RefESD</b><br /><br />
                    Keep converted reference ESD files for future operations instead converting them each time.<br /><br />
                    if UUP source is Express, Reference ESDs and Edition ESDs will be copied to new folder "CanonicalUUP", practically, this convert/backup Express UUP source to Canonical.<br />
                    if UUP source is Canonical, Reference ESDs will be copied to the same UUP source folder, and original CAB files will be moved to subdirectory "Original".
                </li>
                <br />
                <li>
                    <b>SkipEdge</b><br /><br />
                    Set option to <strong>1</strong> : Do not integrate Microsoft Edge Chromium with Feature Update Enablement Package or Cumulative Update.<br />
                    Set option to <strong>2</strong> : Skip Microsoft Edge Chromium with or Cumulative Update via alternative workaround.<br /><br />
					This option works only with option <b>AddUpdates=1</b> (Integrate).
                </li>
            </ul>
            <hr />
            <br />

            <h2><a name="Update"></a>Add Updates Option</h2>
            <h3><a name="UpdateInfo"></a>Info</h3>
            <ul style="margin-top:0in;margin-bottom:0in">
                <li>Starting Windows 10 version 1709, Servicing Stack Update and Latest Cumulative Update are handled and distributed with UUP source. In addition to some small dynamic updates used in upgrades.
                </li>
                <br />
                <li>According to that, UUP Dump will offer multiple builds for the same Windows 10 version. Each one will represent refreshed Feature Update or new Cumulative Update.
                </li>
                <br />
                <li>However, those updates are only used and applied by Windows Update, they not actual part of the UUP source itself and will not be included in the converted ISO/WIM by default.
                </li>
                <br />
                <li><b>AddUpdates</b> option provide built-in ability to directly integrate these updates, resulting a refreshed ISO/WIM, or to add them externally.
                </li>
                <br />
                <li><u>Integrate</u> updates mode only works with install.wim (ISO or Single), and require <u>Windows 10 Host OS or Windows 10 ADK</u>.
                </li>
                <br />
                <li><u>External</u> updates mode only works with <u>builds 17763 and later</u>, and the updates will be installed during setup (clean install or upgrade).
                </li>
                <br />
                <li><b>Cleanup</b> option control image cleanup for integration mode, and will delta-compress superseded components.
                </li>
                <br />
                <li><b>ResetBase</b> option works only with Cleanup option, and will further remove superseded components.
                </li>
                <br />
                <li><b>NetFx3</b> option is to enable .NET 3.5 feature for both modes.
                </li>
                <br />
                <li><u>External</u> updates mode is ment as backup procedure in case Windows 10 ADK is not installed, or the user want to have converted ISO faster. It is recommended to use the normal integration mode if possible.
                </li>
                <br />
                <li>If UUP source is build 17063 or later and multiple editions are selected, in order to reduce integration mode time, Pro/ProN editions will be created as upgrades from the already updated Home/HomeN editions, if possible.
                </li>
                <br />
                <li><u>Integrate</u> updates mode may not work correctly on <u>Windows 7 Host OS</u>, specially with recent Windows 10 builds. <u>External</u> updates mode is recommended to use in that case.
                </li>
                <br />
                <li><u>Integrate</u> updates mode for ARM64 UUP images only works on <u>Windows 10 Host OS exclusively</u>.
                </li>
            </ul>
            <br />
            <h3><a name="UpdateHow"></a>How To</h3>
            <ul style="margin-top:0in;margin-bottom:0in">
                <li>Make sure UUP source contain updates (Windows10.0-KB*.cab files)</li>
                <br />
                <li>Set configuraation option <b>AddUpdates</b> to 1 or 2</b></li>
                <br />
                <li>If you set to 1 and Windows 10 ADK is not installed, it will be reverted to 2 (if build is supported), or turned OFF</li>
            </ul>
            <br />
            <h3><a name="UpdateNote"></a>Note</h3>
            <ul style="margin-top:0in;margin-bottom:0in">
				<u>Warning:</u> on build 18362 and later, <b>Cleanup</b> option will also removes the base RTM Edition packages, due Cumulative Update design change by Microsoft.<br />
				This may lead to failed installation of future cumulative updates.<br /><br />
				Nevertheless, system itself can initiate the cleanup process after installation, either with schedule tasks <b>StartComponentCleanup</b> or <b>SilentCleanup</b>, or via Disk Cleanup.<br />
                <br />
                <u>Warning:</u> <b>ResetBase</b> option break "Reset This PC" feature. Full ResetBase is automatically disabled for build 18362 and later.
            </ul>
            <hr />
            <br />

            <h2><a name="Virtual"></a>Virtual Editions</h2>
            <h3><a name="VirtualInfo"></a>Info</h3>
            <ul style="margin-top:0in;margin-bottom:0in">
                <li>Starting Windows 10 build 17063, regular editions have been unified into two base editions: Home &amp; Pro (with their variants Home N &amp; Pro N)<br /><br />
                Home China edition is still separate
                </li>
                <br />
                <li>According to that, UUP will deliver installation files for the above editions only</li>
                <br />
                <li>The following editions are now exist as "virtual upgrade editions" with base editions:<br /><br />
                <code>Home -&gt; Home Single Language<br />
                Pro N -&gt; Enterprise N, Education N, Pro Education N, Pro N for Workstations, Cloud N (build 21364 and later)<br />
                Pro -&gt; Enterprise, Education, Pro Education, Pro for Workstations, Enterprise multi-session, IoT Enterprise (build 18277 and later), Cloud (build 21364 and later)</code>
                </li>
                <br />
                <li>Therefore, the extra script is to help create these additional editions from UUP source.
                </li>
            </ul>
            <br />
            <h3><a name="VirtualHow"></a>How To</h3>
            <ul style="margin-top:0in;margin-bottom:0in">
                <li>Supported source distribution:<br />
                - Folder (containing the extracted ISO) placed next to the script. (auto detected)<br />
                - DVD Drive, i.e. mounted iso/real dvd drive/usb drive. (auto detected)<br />
                - Direct ISO file. (you will prompted to specify one)</li>
                <br />
                <li>Optional: if you do not intend to keep base converted ISO, set convert-UUP option <b>SkipISO</b> to 1.</li>
                <br />
                <li>Use convert-UUP.cmd to create the source distribution.</li>
                <br />
                <li>Run create_virtual_editions.cmd and choose the desired option from choices.</li>
            </ul>
            <br />
            <h3><a name="VirtualOps"></a>Options</h3>
            <ul style="margin-top:0in;margin-bottom:0in">
                <li>
                    <b>1 - Create all editions</b><br />
                    create all possible target virtual editions.
                </li>
                <br />
                <li>
                    <b>2 - Create one edition</b><br />
                    create one of the target virtual editions.
                </li>
                <br />
                <li>
                    <b>3 - Create randomly selected editions</b><br />
                    create some of the target virtual editions.
                </li>
            </ul>
            <br />
            <h3><a name="VirtualMan"></a>Config Options</h3>
                Control process behavior, output and automation.<br /><br />
                You have two ways to change the state of these options, where 0 means the option is OFF (no), and 1 means the option is ON (yes):<br />
                - edit <b>ConvertConfig.ini</b> under [create_virtual_editions] section<br />
                - delete <b>ConvertConfig.ini</b> and edit <b>create_virtual_editions.cmd</b> script directly<br /><br />
            <ul style="margin-top:0in;margin-bottom:0in">
                <li>AutoStart<br /><br />
                Start the creation process directly without prompts.<br />
                This require the source distribution to be ready (folder or drive).<br />
                Only the editions specified in <b>AutoEditions</b> will be created, if no edition specified (empty), it will create all possible target editions.
                </li>
                <br />
                <li>AutoEditions<br /><br />
                Specify editions to auto create with <b>AutoStart</b> option, separate the editions with a comma ,<br /><br />
                Leave this option empty to create all possible target editions.<br /><br />
                Allowed values: Enterprise, Education, ProfessionalEducation, ProfessionalWorkstation, EnterpriseN, EducationN, ProfessionalEducationN, ProfessionalWorkstationN, CoreSingleLanguage, ServerRdsh, IoTEnterprise, CloudEdition, CloudEditionN<br /><br />
                Examples:<br />
                <code>vAutoEditions=Enterprise<br />
                vAutoEditions=Enterprise,ProfessionalWorkstation,Education<br />
                vAutoEditions=</code>
                </li>
                <br />
                <li>DeleteSource<br /><br />
                Do not keep the source editions (example: create Enterprise and delete Pro).
                </li>
                <br />
                <li>Preserve<br /><br />
                Preserve and keep source distribution folder intact, the operation will be done on copied folder instead.<br />
                If source distribution is ISO file, this option has no affect.
                </li>
                <br />
                <li>wim2esd<br /><br />
                Convert install.wim to install.esd at the end.<br /><br />
                Warning: creating install.esd will consume high amount of CPU/RAM, and might take considerable time to complete.
                </li>
                <br />
                <li>SkipISO<br /><br />
                Do not create final ISO file at the end.
                </li>
            </ul>
                <br />
                <b>Note:</b><br /><br />
                If create_virtual_editions.cmd is started from convert-UUP.cmd, options <b>AutoStart</b> &amp; <b>wim2esd</b> will be inherited from convert-UUP section, regardless their current state under create_virtual_editions section<br /><br />
                meaning, the script will auto-create virtual editions if convert-UUP's AutoStart=1<br />
                and install.wim will be converted to install.esd if convert-UUP's wim2esd=1, otherwise skip conversion if convert-UUP's wim2esd=0<br />
            <hr />
            <br />

            <h2><a name="Multi"></a>Multi-Architecture ISO (x86/x64)</h2>
            <h3><a name="MultiHow"></a>How To</h3>
            <ul style="margin-top:0in;margin-bottom:0in">
                <li>Optional: if you do not intend to keep single architecture ISOs, edit convert-UUP.cmd and <b>set SkipISO=1</b></li>
                <br />
                <li>Use convert-UUP.cmd to create two ISO distributions, one for x64 and another for x86, you may select the desired editions to include in each one</li>
                <br />
                <li>Run multi_arch_iso.cmd and choose the desired option from menu</li>
            </ul>
            <br />
            <h3><a name="MultiOps"></a>Options</h3>
            <ul style="margin-top:0in;margin-bottom:0in">
                <li>
                    <b>1 - Create ISO with 1 combined install.wim/install.esd</b><br />
                    create a custom ISO structure.<br />
                    with 1 install.wim/install.esd for all x64/x86 images, and slighlty modified bootx64.wim/bootx86.wim to allow coexistence.
                </li>
                <br />
                <li>
                    <b>2 - Create ISO with 2 separate install.wim/install.esd (Win 10)</b><br />
                    create the same ISO structure as Media Creation Tool.<br />
                    with 2 separate x64/x86 folders and install.wim/install.esd for each architecture.
                </li>
            </ul>
            <br />
            <h3><a name="MultiNote"></a>Notes</h3>
            <ul style="margin-top:0in;margin-bottom:0in">
                <li>To preserve source single-architecture distributions folders, edit multi_arch_iso.cmd and <b>set Preserve=1</b></li>
                <br />
                <li>If the installation file is install.esd, be aware that option 1 will require high amount of CPU/RAM to unify install.esd files</li>
                <br />
                <li>multi_arch_iso.cmd can be used also to create multi-architecture ISO from any similar Windows x64/x86 ISO distributions, starting Windows 7 SP1<br />
                however, option 2 require Windows 10 setup files.<br />
                </li>
            </ul>
            <hr />
            <br />

            <h2><a name="Debug"></a>Debug Mode</h2>
                Intended to help into detecting errors in the script or the conversion process and create a full log of the operation.<br /><br />
                To enable debug mode, follow these steps:<br /><br />
            <ul style="margin-top:0in;margin-bottom:0in">
                <li>set the desired configuration options in ConvertConfig.ini (specially AutoStart).</li>
                <br />
                <li>edit convert-UUP.cmd and change <b>set _Debug=0</b> to <b>set _Debug=1</b> and save the changes.</li>
                <br />
                <li>to start the process: put the UUP files in <b>UUPs</b> folder, then run the script as administrator.</li>
                <br />
                <li>another way to start the process: drag and drop the UUP files source directory on convert-UUP.cmd</li>
                <br />
                <li>wait until the process finish and cmd window is closed.</li>
            </ul>
            <br />
                Note: create_virtual_editions.cmd will inherit debug mode if StartVirtual option is active.<br />
            <hr />
            <br />

            <h2><a name="Remarks"></a>Remark</h2>
            <ul style="margin-top:0in;margin-bottom:0in">
                <li>If the upgrade is done via Express UUP (multiple expanded folders in the download directory), you need to perform the UUP &gt; ISO operation before starting the upgrade process (before first restart).<br />
                    to do so, when WU prompt you to restart, start convert-UUP.cmd and paste the path to download directory, example:
                <ul style="margin-top:0in;margin-bottom:0in">
                    <li>C:\Windows\SoftwareDistribution\Download\07172dda91861218ecc095600216d792</li>
                </ul>
                <br />
                Alternatively, if you are testing in VM machine or have multi boot systems, you can choose to Shut down/Restart the system without upgrading.<br />
                on Desktop, press Alt+F4 and choose an option without Update
                </li>
            </ul>
            <hr />
            <br />

            <h2><a name="Credits"></a>Credits</h2>
            <ul style="margin-top:0in;margin-bottom:0in">
                <li><a href="https://github.com/uup-dump">whatever127</a> - UUP dump</li>
                <li><a href="https://wimlib.net">Eric Biggers</a> - wimlib</li>
                <li><a href="https://www.7-zip.org">Igor Pavlov</a> - 7-zip</li>
                <li><a href="https://forums.mydigitallife.net/members/superbubble.250156/">Melinda Bellemore</a> - SxSExpand</li>
                <li><a href="https://www.betaworld.org/">th1r5bvn23</a> - PSFExtractor</li>
                <li><a href="http://reboot.pro/files/file/313-offlinereg">erwan.l</a> - offlinereg</li>
                <li><a href="http://reboot.pro/topic/20471-windows-pe-5x-boot-problem">cdob</a> - create aio efisys.bin</li>
                <li>Special thanks to: @Enthousiast, @s1ave77, @Ratiborus58, @NecrosoftCore, @DiamondMonday, @WzorNET</li>
                <li>cabarc, cdimage, imagex and bcdedit are intellectual property of Microsoft Corporation.</li>
            </ul>
            <br />
            Author: <a href="https://github.com/abbodi1406">abbodi1406</a>
        </div>
    </main>

    <nav id="nav">
        <div class="innertube">
            <h2>Index</h2>
            <a href="#Overview">Overview</a><br />
            <a href="#Using">How To Use</a><br />
            <a href="#Options">Output Choice</a><br /><br />
            <a href="#Manual">Configuration Options</a><br /><br />
            <a href="#Update">Add Updates Option</a><br />
            &nbsp;&nbsp;&nbsp;<a href="#UpdateInfo">Info</a><br />
            &nbsp;&nbsp;&nbsp;<a href="#UpdateHow">How To</a><br />
            &nbsp;&nbsp;&nbsp;<a href="#UpdateNote">Note</a><br /><br />
            <a href="#Virtual">Virtual Editions</a><br />
            &nbsp;&nbsp;&nbsp;<a href="#VirtualInfo">Info</a><br />
            &nbsp;&nbsp;&nbsp;<a href="#VirtualHow">How To</a><br />
            &nbsp;&nbsp;&nbsp;<a href="#VirtualOps">Options</a><br />
            &nbsp;&nbsp;&nbsp;<a href="#VirtualMan">Config Options</a><br /><br />
            <a href="#Multi">Multi-Architecture ISO</a><br />
            &nbsp;&nbsp;&nbsp;<a href="#MultiHow">How To</a><br />
            &nbsp;&nbsp;&nbsp;<a href="#MultiOps">Options</a><br />
            &nbsp;&nbsp;&nbsp;<a href="#MultiNote">Notes</a><br /><br />
            <a href="#Debug">Debug Mode</a><br />
            <a href="#Remarks">Remark</a><br />
            <a href="#Credits">Credits</a>
        </div>
    </nav>
</body>
</html>